<?php

require_once dirname(__FILE__).'/../lib/groupeGeneratorConfiguration.class.php';
require_once dirname(__FILE__).'/../lib/groupeGeneratorHelper.class.php';

/**
 * groupe actions.
 *
 * @package    tfe
 * @subpackage groupe
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class groupeActions extends autoGroupeActions
{
     public function executeAutocomplete(sfWebRequest $request)
     {
       $this->getResponse()->setContentType('application/json');
       $request = Doctrine::getTable('Groupe')->createQuery()
                    ->where("libelle LIKE ?","%".$request->getParameter('q')."%")
                    ->limit($request->getParameter('limit'))
                    ->execute()
                    ->getData();

       $groupes = array();
       foreach ( $request as $groupe ){
         $groupes[$groupe->id] = (string) $groupe;
      }

       return $this->renderText(json_encode($groupes));
     }

    public function executeListEmail(sfWebRequest $request)
    {
       
        $this->redirect('groupe');
    }

//    public function executeShow(sfWebRequest $request){
//
//        $this->groupe = Doctrine::getTable('Groupe')->find(array($request->getParameter('id')));
//        $this->forward404Unless($this->groupe);
//
//        $this->abonnements = Doctrine_Query::create()
//                ->from('InsAbonnement i')
//                ->where('i.id_groupe = ?', $request->getParameter('id'))
//                ->andWhere('i.deleted_at IS NULL')
//                ->execute();
//
//        $this->stages = Doctrine_Query::create()
//                ->from('InsStage i')
//                ->where('i.id_groupe = ?', $request->getParameter('id'))
//                ->andWhere('i.deleted_at IS NULL')
//                ->execute();
//
//        $this->ateliers = Doctrine_Query::create()
//                ->from('InsAtelier i')
//                ->where('i.id_groupe = ?', $request->getParameter('id'))
//                ->andWhere('i.deleted_at IS NULL')
//                ->execute();
//
//        $this->locations = Doctrine_Query::create()
//                ->from('Location l')
//                ->where('l.id_groupe = ?', $request->getParameter('id'))
//                ->andWhere('l.deleted_at IS NULL')
//                ->execute();
//
//        $this->communications = Doctrine_Query::create()
//                ->from('Communication c')
//                ->where('c.id_groupe = ?', $request->getParameter('id'))
//                ->andWhere('c.deleted_at IS NULL')
//                ->execute();
//    }

    // utile pour que les actions batch respecten le softDelete
    protected function executeBatchDelete(sfWebRequest $request) {
        $ids = $request->getParameter('ids');

        $records = Doctrine_Query::create()
                ->select()
                ->from('Groupe')
                ->whereIn('id', $ids)
                ->execute();

        $count = 0;
        foreach($records as $record){
            $count += $record->delete();
        }

        if ($count >= count($ids)) {
            $this->getUser()->setFlash('notice', 'The selected items have been deleted successfully.');
        }
        else {
            $this->getUser()->setFlash('error', 'A problem occurs when deleting the selected items.');
        }

        $this->redirect('@groupe');
    }


    // creation d'un fichier CSV contenant noms + mails des contacts selectionnes
    protected function executeBatchCsvMails(sfWebRequest $request) {
        // creation d'un nom unique de fichier sur base d'un hashage de la concaténation du nom d'utilisateur et d'un timestamp
        // puis appelle à la méthode objet
        $filename = sha1($this->getUser().date('ymd').time()).'.csv';
        Groupe::createCsvMails($request->getParameter('ids'),$filename);

        // redirection vers telechargement du fichier CSV genere
        $this->redirect('CSV/mails?filename='.$filename);
    }


    // creation d'un fichier CSV contenant noms + adresses des contacts selectionnes
    protected function executeBatchCsvLettres(sfWebRequest $request) {
        // creation d'un nom unique de fichier sur base d'un hashage de la concaténation du nom d'utilisateur et d'un timestamp
        // puis appelle à la méthode objet
        $filename = sha1($this->getUser().date('ymd').time()).'.csv';
        Groupe::createCsvLettres($request->getParameter('ids'),$filename);

        // redirection vers telechargement du fichier CSV genere
        $this->redirect('CSV/lettres?filename='. $filename);
    }

}
